home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / atlantis / code.lua next >
Text File  |  2005-07-16  |  12KB  |  368 lines

  1.  
  2. file_include('script/share/prog_border.lua')
  3.  
  4. -- -----------------------------------------------------------------
  5. -- Init
  6. -- -----------------------------------------------------------------
  7. local function prog_init()
  8.     initModels()
  9.     sound_playMusic("music/rybky14.ogg")
  10.     local pokus = getRestartCount()
  11.  
  12.     --NOTE: a final level
  13.     small:setGoal("goal_alive")
  14.     big:setGoal("goal_alive")
  15.     spunt:setGoal("goal_out")
  16.  
  17.     -- -------------------------------------------------------------
  18.     local function prog_init_room()
  19.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  20.  
  21.         room.uvod = 0
  22.         room.vratit = 0
  23.         room.nechat = randint(1000, 2500)
  24.         room.zatraceny = randint(2000, 4000)
  25.  
  26.         return function()
  27.             if stdBorderReport() then
  28.                 addv(random(10) + 5, "sp-v-ven")
  29.             end
  30.             if isReady(small) and isReady(big) and no_dialog() then
  31.                 if room.nechat > 0 then
  32.                     room.nechat = room.nechat - 1
  33.                 end
  34.                 if room.zatraceny > 0 then
  35.                     room.zatraceny = room.zatraceny - 1
  36.                 end
  37.                 if room.uvod == 0 then
  38.                     if pokus == 1 or random(100) < 70 then
  39.                         switch(random(4)){
  40.                             [0] = function()
  41.                                 addv(randint(20, 30), "sp-v-no0")
  42.                             end,
  43.                             [1] = function()
  44.                                 addm(randint(20, 30), "sp-m-no1")
  45.                             end,
  46.                             [2] = function()
  47.                                 addv(randint(20, 30), "sp-v-kdoby")
  48.                             end,
  49.                             [3] = function()
  50.                                 addm(randint(20, 30), "sp-m-neopatrnost")
  51.                             end,
  52.                         }
  53.                         addv(random(10), "sp-v-zahynuli")
  54.                         addm(random(8), "sp-m-vytazeny")
  55.                         addv(random(8), "sp-v-trapne")
  56.                     end
  57.                     room.uvod = 1
  58.                 elseif room.vratit == 0 and random(100) < 1 then
  59.                     room.vratit = 1
  60.                     addm(random(5), "sp-m-costim")
  61.                     switch(random(2)){
  62.                         [0] = function()
  63.                             addv(random(5), "sp-v-vratit0")
  64.                             addm(random(5), "sp-m-vratit0")
  65.                         end,
  66.                         [1] = function()
  67.                             addv(random(5), "sp-v-vratit1")
  68.                             addm(random(5), "sp-m-vratit1")
  69.                         end,
  70.                     }
  71.                     switch(random(4)){
  72.                         [0] = function()
  73.                             addm(random(5), "sp-m-kalet")
  74.                             addv(random(5), "sp-v-pocit")
  75.                             addm(random(5), "sp-m-potize")
  76.                             addv(random(5), "sp-v-vzit")
  77.                         end,
  78.                         [1] = function()
  79.                             addm(random(5), "sp-m-potize")
  80.                             addv(random(5), "sp-v-vzit")
  81.                         end,
  82.                         [2] = function()
  83.                             addm(random(5), "sp-m-kalet")
  84.                             addv(random(5), "sp-v-vzit")
  85.                         end,
  86.                         [3] = function()
  87.                             addm(random(5), "sp-m-potize")
  88.                             addv(random(5), "sp-v-pocit")
  89.                         end,
  90.                     }
  91.                     switch(random(2)){
  92.                         [0] = function()
  93.                             addm(random(5), "sp-m-taky")
  94.                             addv(random(5), "sp-v-dotoho")
  95.                         end,
  96.                     }
  97.                 elseif room.nechat == 0 then
  98.                     room.nechat = randint(500, 2000)
  99.                     switch(random(2)){
  100.                         [0] = function()
  101.                             addm(random(5), "sp-m-nechat")
  102.                             addv(random(5), "sp-v-centrala")
  103.                         end,
  104.                         [1] = function()
  105.                             addv(random(5), "sp-v-jedno")
  106.                             addm(random(5), "sp-m-vydrz")
  107.                         end,
  108.                     }
  109.                 elseif room.zatraceny == 0 then
  110.                     room.zatraceny = randint(1000, 4000)
  111.                     addm(random(5), "sp-m-spunt")
  112.                     addv(random(7), "sp-v-co")
  113.                     switch(random(5)){
  114.                         [0] = function()
  115.                             addm(random(7), "sp-m-vymluva0")
  116.                         end,
  117.                         [1] = function()
  118.                             addm(random(7), "sp-m-vymluva1")
  119.                         end,
  120.                         [2] = function()
  121.                             addm(random(7), "sp-m-vymluva2")
  122.                         end,
  123.                         [3] = function()
  124.                             addm(random(7), "sp-m-vymluva3")
  125.                         end,
  126.                         [4] = function()
  127.                             addm(random(7), "sp-m-vymluva4")
  128.                         end,
  129.                     }
  130.                     if random(2) < 1 then
  131.                         addv(random(7), "sp-v-nesmysl")
  132.                     end
  133.                 end
  134.             end
  135.         end
  136.     end
  137.  
  138.     -- -------------------------------------------------------------
  139.     local function prog_init_spunt()
  140.         return function()
  141.         end
  142.     end
  143.  
  144.     -- -------------------------------------------------------------
  145.     local function prog_init_krab1()
  146.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  147.  
  148.         krab1.oci = 0
  149.         krab1.spi = randint(2, 70)
  150.  
  151.         return function()
  152.             if krab1.afaze == 1 and krab1.spi > 0 then
  153.                 krab1.spi = krab1.spi - 1
  154.                 krab1.afaze = 1
  155.             elseif krab1.spi == 0 then
  156.                 krab1.spi = randint(2, 70)
  157.                 krab1.afaze = krab1.oci
  158.             elseif random(100) < 5 then
  159.                 krab1.oci = random(5)
  160.                 if krab1.oci > 0 then
  161.                     krab1.oci = krab1.oci + 1
  162.                 end
  163.             elseif random(100) > 97 then
  164.                 krab1.afaze = 1
  165.             else
  166.                 krab1.afaze = krab1.oci
  167.             end
  168.             krab1:updateAnim()
  169.         end
  170.     end
  171.  
  172.     -- -------------------------------------------------------------
  173.     local function prog_init_hlava3()
  174.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  175.  
  176.         hlava3.huba = 0
  177.         hlava3.ksicht = randint(10, 100)
  178.  
  179.         return function()
  180.             if hlava3.huba ~= 0 and hlava3.ksicht > 0 then
  181.                 hlava3.ksicht = hlava3.ksicht - 1
  182.                 hlava3.afaze = hlava3.huba
  183.             elseif hlava3.ksicht == 0 then
  184.                 hlava3.ksicht = randint(10, 100)
  185.                 hlava3.huba = 0
  186.             elseif random(1000) < 3 then
  187.                 hlava3.huba = random(2) + 1
  188.             else
  189.                 hlava3.afaze = 0
  190.             end
  191.             hlava3:updateAnim()
  192.         end
  193.     end
  194.  
  195.     -- -------------------------------------------------------------
  196.     local function prog_init_snecik1()
  197.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  198.  
  199.         snecik1.kouka = 0
  200.  
  201.         return function()
  202.             if snecik1.dir ~= dir_no then
  203.                 snecik1.kouka = random(100) + 10
  204.             elseif snecik1.kouka > 0 then
  205.                 snecik1.kouka = snecik1.kouka - 1
  206.             end
  207.             if snecik1.kouka > 0 then
  208.                 if snecik1.afaze < 2 then
  209.                     snecik1.afaze = snecik1.afaze + 1
  210.                 end
  211.             elseif snecik1.afaze > 0 then
  212.                 snecik1.afaze = snecik1.afaze - 1
  213.             end
  214.             snecik1:updateAnim()
  215.         end
  216.     end
  217.  
  218.     -- -------------------------------------------------------------
  219.     local function prog_init_krab2()
  220.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  221.  
  222.         krab2.oci = 0
  223.         krab2.spi = randint(2, 70)
  224.  
  225.         return function()
  226.             if krab2.afaze == 1 and krab2.spi > 0 then
  227.                 krab2.spi = krab2.spi - 1
  228.                 krab2.afaze = 1
  229.             elseif krab2.spi == 0 then
  230.                 krab2.spi = randint(2, 70)
  231.                 krab2.afaze = krab2.oci
  232.             elseif random(100) < 5 then
  233.                 krab2.oci = random(5)
  234.                 if krab2.oci > 0 then
  235.                     krab2.oci = krab2.oci + 1
  236.                 end
  237.             elseif random(100) > 97 then
  238.                 krab2.afaze = 1
  239.             else
  240.                 krab2.afaze = krab2.oci
  241.             end
  242.             krab2:updateAnim()
  243.         end
  244.     end
  245.  
  246.     -- -------------------------------------------------------------
  247.     local function prog_init_snecik2()
  248.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  249.  
  250.         snecik2.kouka = 0
  251.  
  252.         return function()
  253.             if snecik2.dir ~= dir_no then
  254.                 snecik2.kouka = random(100) + 10
  255.             elseif snecik2.kouka > 0 then
  256.                 snecik2.kouka = snecik2.kouka - 1
  257.             end
  258.             if snecik2.kouka > 0 then
  259.                 if snecik2.afaze < 2 then
  260.                     snecik2.afaze = snecik2.afaze + 1
  261.                 end
  262.             elseif snecik2.afaze > 0 then
  263.                 snecik2.afaze = snecik2.afaze - 1
  264.             end
  265.             snecik2:updateAnim()
  266.         end
  267.     end
  268.  
  269.     -- -------------------------------------------------------------
  270.     local function prog_init_hlava2()
  271.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  272.  
  273.         hlava2.huba = 0
  274.         hlava2.ksicht = randint(10, 100)
  275.  
  276.         return function()
  277.             if hlava2.huba ~= 0 and hlava2.ksicht > 0 then
  278.                 hlava2.ksicht = hlava2.ksicht - 1
  279.                 hlava2.afaze = hlava2.huba
  280.             elseif hlava2.ksicht == 0 then
  281.                 hlava2.ksicht = randint(10, 100)
  282.                 hlava2.huba = 0
  283.             elseif random(1000) < 3 then
  284.                 hlava2.huba = random(2) + 1
  285.             else
  286.                 hlava2.afaze = 0
  287.             end
  288.             hlava2:updateAnim()
  289.         end
  290.     end
  291.  
  292.     -- -------------------------------------------------------------
  293.     local function prog_init_hlava1()
  294.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  295.  
  296.         hlava1.huba = 0
  297.         hlava1.ksicht = randint(10, 100)
  298.  
  299.         return function()
  300.             if hlava1.huba ~= 0 and hlava1.ksicht > 0 then
  301.                 hlava1.ksicht = hlava1.ksicht - 1
  302.                 hlava1.afaze = hlava1.huba
  303.             elseif hlava1.ksicht == 0 then
  304.                 hlava1.ksicht = randint(10, 100)
  305.                 hlava1.huba = 0
  306.             elseif random(1000) < 3 then
  307.                 hlava1.huba = random(2) + 1
  308.             else
  309.                 hlava1.afaze = 0
  310.             end
  311.             hlava1:updateAnim()
  312.         end
  313.     end
  314.  
  315.     -- --------------------
  316.     local update_table = {}
  317.     local subinit
  318.     subinit = prog_init_room()
  319.     if subinit then
  320.         table.insert(update_table, subinit)
  321.     end
  322.     subinit = prog_init_spunt()
  323.     if subinit then
  324.         table.insert(update_table, subinit)
  325.     end
  326.     subinit = prog_init_krab1()
  327.     if subinit then
  328.         table.insert(update_table, subinit)
  329.     end
  330.     subinit = prog_init_hlava3()
  331.     if subinit then
  332.         table.insert(update_table, subinit)
  333.     end
  334.     subinit = prog_init_snecik1()
  335.     if subinit then
  336.         table.insert(update_table, subinit)
  337.     end
  338.     subinit = prog_init_krab2()
  339.     if subinit then
  340.         table.insert(update_table, subinit)
  341.     end
  342.     subinit = prog_init_snecik2()
  343.     if subinit then
  344.         table.insert(update_table, subinit)
  345.     end
  346.     subinit = prog_init_hlava2()
  347.     if subinit then
  348.         table.insert(update_table, subinit)
  349.     end
  350.     subinit = prog_init_hlava1()
  351.     if subinit then
  352.         table.insert(update_table, subinit)
  353.     end
  354.     return update_table
  355. end
  356. local update_table = prog_init()
  357.  
  358.  
  359. -- -----------------------------------------------------------------
  360. -- Update
  361. -- -----------------------------------------------------------------
  362. function prog_update()
  363.     for key, subupdate in pairs(update_table) do
  364.         subupdate()
  365.     end
  366. end
  367.  
  368.